Integrated circuits (Cs) may be implemented to perform specified functions. One type of IC is a programmable IC, such as a field programmable gate array (FPGA). An FPGA typically includes an array of programmable tiles. These programmable tiles may include, for example, input/output blocks (IOBs), configurable logic blocks (CLBs), dedicated random access memory blocks (BRAM), multipliers, digital signal processing blocks (DSPs), processors, dock managers, delay lock loops (DLLs), and so forth. Another type of programmable IC is the complex programmable logic device, or CPLD, A CPLD includes two or more “function blocks” connected together and to input/output (I/O) resources by an interconnect switch matrix. Each function block of the CPLD includes a two-level AND/OR structure similar to those used in programmable logic arrays (PLAs) and programmable array logic (PAL) devices. Other programmable ICs are programmed by applying a processing layer, such as a metal layer, that programmably interconnects the various elements on the device. These programmable ICs are known as mask programmable devices. The phrase “programmable IC” can also encompass devices that are only partially programmable, such as application specific integrated circuits (ASICs).
These and other types of programmable ICs may be capable of transmitting a high-speed digital data signal via transmission lines to a receiver without an accompanying dock signal. A clock data recovery (CDR) circuit in the receiver typically generates one or more clock signals from an approximate frequency reference signal and then phase aligns the docks signals to the transitions in or another portion of the received data signal. The receiver uses the clock signals to sample data bits in the received data signal.